package cn.maidouya.hrm.interceptor;

import cn.hutool.http.HttpUtil;
import com.alibaba.fastjson.JSONObject;
import feign.RequestInterceptor;
import feign.RequestTemplate;
import org.springframework.stereotype.Component;

import java.util.Map;

/**
 *     拦截类实现RequestInterceptor拦截
 *     拦截请求生成临时的token
 */
@Component // 交给spring管理
public class ServiceTempAuthInterceptor implements RequestInterceptor {
    @Override
    public void apply(RequestTemplate requestTemplate) {
    // 请求授权生成token路径，地址url有规定别随意修改
    String url = "http://localhost:3010/oauth/token?client_id=system&client_secret=1&grant_type=client_credentials";
         // java发送请求方式，并回调是字符串
        String resultData = HttpUtil.get(url);
        // 字符串通过JSON格式转化为map数据格式
        Map<String,String> map = JSONObject.parseObject(resultData, Map.class);
        // 获取AccessToken临时授权码
        String accessToken = map.get("access_token");
        // 根据访问要求，拼接临时token格式
        String temAuthen = "bearer " + accessToken;
        // token交给请求头
        requestTemplate.header("Authorization",temAuthen);

    }
}